package com.novel.pojo.system;

import com.novel.utils.RegexPatterns;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Pattern;
import java.util.Date;

@AllArgsConstructor//创建所有参数的构造方法
@NoArgsConstructor//创建空参构造
@Data//lombok帮我们创建所需要的方法
@Table(name = "novel_user")//配置实体类和那个数据库的表对应
public class User {

    @Id//配置数据库的主键关系
    private String userId;//用户唯一表示uuid
    @Pattern(regexp = RegexPatterns.EMAIL_REGEX, message = "邮箱格式不正确")
    private String userEmail;//用户登录的邮箱唯一标识
    @Length(min = 4, max = 50, message = "昵称长度不正确")
    private String userName;//用户的网名字
    @Length(min = 6, max = 24, message = "密码长度不正确")
    private String password;//密码
    private Date createTime;//创建账号的时间
    private Double amount;//账户余额,虚拟币
    private Integer recommend;//推荐票的数量
    @Pattern(regexp = RegexPatterns.PHONE_REGEX, message = "手机格式不正确")
    private Long telephone;//电话号码
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;//生日
    private String introduction;//个人介绍
    private String imgSrc;//头像图片地址
    private Date vipDeadLine;//vip结束时间
    private Integer identify;//登录权限身份
    private Integer status;//账号状态
}
